Skip to content

x-networkstatus-s 网络状态 ​

网络类型、弱网变化、局域网 IP。函数与类型均加 x 前缀,避免与官方同名冲突。一次性 API 使用 DCloud success / fail / complete。

兼容性 ​

HarmonyiOSAndroidWEB微信小程序
支持支持支持部分支持支持

Web 端 xGetLocalIPAddress 因浏览器限制返回 fail 1008。弱网在 App / Web 为近似判断,微信端走官方弱网能力。

调用 ​

ts
import {
  xGetNetworkType,
  xGetLocalIPAddress,
  xOnNetworkStatusChange,
  xOffNetworkStatusChange,
  xOnNetworkWeakChange,
  xOffNetworkWeakChange,
  XGetNetworkTypeOptions,
  XGetLocalIPAddressOptions
} from "@/uni_modules/x-networkstatus-s"

xGetNetworkType({
  success: (res) => {
    console.log(res.networkType, res.weakNet, res.signalStrength)
  }
} as XGetNetworkTypeOptions)

xGetLocalIPAddress({
  success: (res) => {
    console.log(res.localip, res.netmask)
  }
} as XGetLocalIPAddressOptions)

const statusId = xOnNetworkStatusChange((res) => {
  console.log(res.isConnected, res.networkType)
})
const weakId = xOnNetworkWeakChange((res) => {
  console.log(res.weakNet, res.networkType)
})

xOffNetworkStatusChange(statusId)
xOffNetworkWeakChange(weakId)

方法 ​

名称说明
xGetNetworkType获取当前网络类型与弱网/代理信息
xGetLocalIPAddress获取局域网 IP 与子网掩码
xOnNetworkStatusChange监听联网状态与类型变化,返回监听 id
xOffNetworkStatusChange移除状态监听;不传 id 则移除本插件全部状态监听
xOnNetworkWeakChange监听弱网变化,返回监听 id
xOffNetworkWeakChange移除弱网监听;不传 id 则移除本插件全部弱网监听

网络类型 ​

wifi / 2g / 3g / 4g / 5g / unknown / none

XGetNetworkTypeResult 固定包含 signalStrength(dbm,未知为 0)、hasSystemProxy、weakNet。

错误码:1001 系统错误,1002 参数错误,1003 无法获取局域网 IP,1008 当前平台不支持。

平台差异 ​

Android

  • ConnectivityManager + NetworkCallback。
  • 蜂窝制式优先 TelephonyManager,失败时按下行带宽近似。
  • 局域网 IP 走 NetworkInterface,优先 Wi-Fi。
  • 需 ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE。

iOS

  • NWPathMonitor 监听路径;蜂窝制式走 CTTelephonyNetworkInfo。
  • 弱网:isConstrained 或 2g。
  • 局域网 IP 走 getifaddrs,优先 en0。

HarmonyOS

  • @kit.NetworkKit 的 createNetConnection + getNetCapabilities。
  • 蜂窝制式走 @kit.TelephonyKit 的 radio.getSignalInformation。
  • Wi-Fi IP 走 wifiManager.getIpInfo,失败再读连接属性。
  • 需 ohos.permission.GET_NETWORK_INFO、ohos.permission.GET_WIFI_INFO。宿主 entry/module.json5 也应声明。

Web

  • 在线状态走 navigator.onLine 与 window 的 online / offline。
  • 网络类型走 navigator.connection(含 mozConnection / webkitConnection):优先 type(wifi / ethernet / cellular),蜂窝再映射 effectiveType。
  • Safari 等未实现 Network Information API 的浏览器:在线为 unknown,离线为 none;状态变化仍可监听。
  • effectiveType 表示估算速率,Wi-Fi 上也可能是 4g。
  • 不支持读取局域网 IP(fail 1008)。

微信小程序

  • 直接转发 wx.getNetworkType、wx.getLocalIPAddress、wx.onNetworkStatusChange、wx.offNetworkStatusChange、wx.onNetworkWeakChange、wx.offNetworkWeakChange。

版本 ​

版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。

更新日志 ​

1.0.1(2026-08-17) ​

  • 修复 Web 端 navigator.get is not a function:改为读取 navigator.connection 属性,不再把 navigator 当 UTSJSONObject。
  • 修复 Web 端首次 online / offline / connection.change 被基线逻辑吞掉。

1.0.0(2026-08-16) ​

  • 新增 x-networkstatus-s:xOnNetworkStatusChange、xOffNetworkStatusChange、xOnNetworkWeakChange、xOffNetworkWeakChange、xGetNetworkType、xGetLocalIPAddress。
最近更新